import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib as mpl
from matplotlib import rcParams


from matplotlib.font_manager import FontProperties
from matplotlib.ticker import FuncFormatter
from datetime import datetime
import numpy as np

import matplotlib.gridspec as gridspec


x = [1, 2, 3, 4, 5, 6, 7]
y = [1, 2, 3, 4, 5, 6, 7]

config = {
    "font.family": 'serif',  # 衬线字体
    "font.size": 15,  # 相当于小四大小
    "font.serif": ['SimHei'],  # 宋体
    "mathtext.fontset": 'stix',  # matplotlib渲染数学字体时使用的字体，和Times New Roman差别不大
    'axes.unicode_minus': False  # 处理负号，即-号
}
rcParams.update(config)

##########################################################################
# 新建figure
fig=plt.figure(constrained_layout=True)  # 可以调整图表大小

#Gridspec()可以跨网格位置来显示子图，通过修改add_subplot()函数来改变。
#projection--功能：子图的投影类型
# grid = plt.GridSpec(4, 4, hspace=0.5, wspace=0.2)
spec=plt.GridSpec(1,1,figure=fig)

ax1=fig.add_subplot(spec[0,0])
ax1.bar(x, y,label='A1')
ax1.set(xlabel='x轴',
        ylabel='voltage',
        title='标题') # 设置横纵轴标签与图像标题


ax1_2=ax1.twinx()  #ax1.twinx()方法创建第二个坐标轴，它与第一个坐标轴共享相同的x轴，但有自己的y轴。

ax1_2.plot(x,y,label='A2') #label设置图例
ax1_2.grid(linestyle="-")# 设置网格

ax1.legend()
ax1_2.legend()

plt.show()

